package com.taxi.daos.mysql;

import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.taxi.bean.EmpresaBean;
import com.taxi.bean.VehiculoBean;
import com.taxi.daos.interfaces.EmpresaDAO;
import com.taxi.daos.interfaces.VehiculoDAO;
import com.taxi.util.UtilSqlConfig;

public class EmpresaDAOImpl implements EmpresaDAO {
	
	SqlMapClient sqlMap = UtilSqlConfig.getSqlMapInstance();


	 //Solo obtengo lo necesario para el comboEmpresa
	
	public List<EmpresaBean> GetComboEmpresa() throws Exception {
		try {
			List<EmpresaBean> listEmpresa = (List<EmpresaBean>)sqlMap.queryForList("ListaComboEmpresa");
			System.out.println("Listado Para el Combo Empresa");
			for (int i = 0; i < listEmpresa.size() ; i++) {
					System.out.println("*"+listEmpresa.get(i).getCodigo()+ " - " +listEmpresa.get(i).getNombre());		
			}
			System.out.println("Count" + listEmpresa.size());
			return listEmpresa;			
		} catch (Exception e) {
				e.printStackTrace();
		}
		return null;

	}


	//Metodos (guia MantLeo)
	public void registrarEmpresa(EmpresaBean bean) throws Exception {
		EmpresaBean empresa = (EmpresaBean)sqlMap.insert("registrarEmpresa",bean);
		System.out.println("Entro");
	}
	
	public EmpresaBean codigoAutogenerado() throws Exception {
		// TODO Auto-generated method stub
		return (EmpresaBean)sqlMap.queryForObject("obtenerAutogeneradoEmpresa");
	}
	
	public void actualizarEmpresa(EmpresaBean bean) throws Exception {
		 sqlMap.update("actualizarEmpresa",bean);
	}
	
	
	public void eliminarEmpresa(EmpresaBean bean) throws Exception {
		  sqlMap.delete("eliminarEmpresa",bean);
	}
	
	@SuppressWarnings("unchecked")
	public List<EmpresaBean> listaEmpresa() throws Exception {
		
		return (List<EmpresaBean>)sqlMap.queryForList("listadoEmpresa");
		
	}
	
	 
	public ArrayList<EmpresaBean> listadoEmpresa() throws Exception {
		// TODO Auto-generated method stub
		return (ArrayList<EmpresaBean>)sqlMap.queryForList("listadoEmpresa");
	}
	
	///Metodos que no se usan
	//Estaba antes
	
	//public int registrarempresa(EmpresaBean bean) throws Exception {
		//return (Integer) null;
	//}

	//Antes2
	//public EmpresaBean codigoAutogenerado() throws Exception {
		// TODO Auto-generated method stub
		//return null ;//(EmpresaBean)sqlMapClient.queryForObject("obtenerAutogeneradoEmpresa");
	//}
	
	//Antes Listado
	//public List<EmpresaBean> listaEmpresa() throws Exception {
		// TODO Auto-generated method stub
		//return null;//sqlMapClient.queryForList("listarEmpresasExistentes");
	//}
	 
	public EmpresaBean obtenerEmpresaPorCodigo(int id) throws Exception {
		// TODO Auto-generated method stub
		return null;//(EmpresaBean)sqlMapClient.queryForObject("obtenerEmpresaPorCodigo", id);
	}
 
	//Antes actualizar
	//public void actualizarEmpresa(EmpresaBean empresa) throws Exception {
		// TODO Auto-generated method stub
	    //	sqlMapClient.update("actualizarEmpresa",empresa);
		
	//}
	 
	public void eliminarEmpresa(int codigo) throws Exception {
		// TODO Auto-generated method stub
		//sqlMapClient.delete("eliminarEmpresa",codigo);
	}


	 
	public int registrarempresa(EmpresaBean bean) throws Exception {
		// TODO Auto-generated method stub
		return 0;
	}
	
	//Antes eliminar
	//public void eliminarEmpresa(EmpresaBean bean) throws Exception {
		//  sqlMap.delete("eliminarEmpresa",bean);
	//}

}
